// 2. 引入vuex
import Vue from 'vue'
import Vuex from 'vuex'
// 3. 注册
Vue.use(Vuex) //给组件添加$store
// 4. 实例化store对象
const store = new Vuex.Store({
    state: {
        num: 100
    },
    mutations: {
        addNum(state, val) { // 负责增加库存的管家
            state.num += val
        },
        subNum(state, val) { // 负责减少库存的管家
            state.num -= val
        },
        setNum(state, val) { // 负责直接修改库存的管家
            state.num = val
        }
    },
    actions: {
        asyncAddNum(store, val) {
            setTimeout(() => { // 1秒后, 异步提交给add的mutations
                store.commit('addNum', val)
            }, 1000)
        },
        asyncSubNum(store, val) {
            setTimeout(() => { // 1秒后, 异步提交给sub的mutations
                store.commit('subNum', val)
            }, 1000)
        }
    }
})
// 5. 导出store对象
export default store